const storage = window.localStorage
/* 查 */
export const getStorage = (key)=>{
	//先查有无你要查询的key，如果有此数据，那么key就是存在的并且名字应该为一个字符串
	if(typeof key !== 'string' || key.trim() === ''){
		return
	}
	//如果有，就进行对数据的获取并处理完成返还给你
	let val = storage.getItem(key)
	let res
	try{
		res = JSON.parse(val)
	}catch(e){
		//TODO handle the exception
		res = val
	}
	return res
}
/* 增 改 */
export let setStorage = (key,value)=>{
	if(typeof key !== 'string' || key.trim() === ''){
		return
	}
	//储存：先把你传进来的value进行处理因为localStorage只接受字符型，然后再把键名与键值存入
	let val = value
	if(typeof val !== 'string'){
		val = JSON.stringify(val)
	}
	storage.setItem(key,val)
}
/* 删 */
export const removeStorage = (key,value)=>{
	//先通过键名拿到原数据，对数据进行判断，看是数组还是对象，然后进行删除，最后再把删除完的数据重新处理json，重新覆盖掉之前的localStorage数据
	let res = getStorage(key)
	if(res){
		if(Array.isArray(res)){
			let index = res.indexOf(value)
			if(index === -1)return
			res.splice(index,1)
		}else if(typeof res === 'object'){
			delete res[value]
		}
		storage.setItem(key,JSON.stringify(res))
	}else{
		return
	}
}